<?php
App::uses('Bizonylat', 'Model');

class BizonylatTest extends CakeTestCase {

	public $fixtures = array('app.bizonylat', 'app.naplo', 'app.naplotipus', 'app.osztaly',
									'app.szamla', 'app.tetel', 'app.valutatetel', 'app.gyujto', 'app.gyujto_osztaly');

	public function setUp() {
		parent::setUp();
		$this->Bizonylat = ClassRegistry::init('Bizonylat');
	}

	public function tearDown() {
		unset($this->Bizonylat);

		parent::tearDown();
	}

	public function testSave(){
		//nincs megjegyzés 1 tétel
		$data = array('Bizonylat' =>
								array('naplo_id' => 1, 'osztaly_id' => 2, 'user_id' => 1,
									'sorszam' => 1, 'arfolyam' => 1, 
									'datum' => '2012-11-12',  'hatarido' => '2000-01-01',
									'spec' => '', 'zarolt' => 0, 'created' => '2012-11-12',
									'modified' => '2012-11-12'),
							'Tetel' =>
								array('sorszam' => 0, 'szoveg' => 'Adomány', 'osszeg' => 50000.00,
										't' => 4, 'k' => 8, 'spec' => '0'));
		$actual = is_array($this->Bizonylat->save($data)) ? true : false;
		$expected = true;
		$this->assertEquals($expected, $actual);

		//nincs megjegyzés 2 tétel
		$this->Bizonylat->create();
		$data = array('Bizonylat' =>
								array('naplo_id' => 1, 'osztaly_id' => 2, 'user_id' => 1,
									'sorszam' => 1, 'arfolyam' => 1, 
									'datum' => '2012-11-12',  'hatarido' => '2000-01-01',
									'spec' => '', 'zarolt' => 0, 'created' => '2012-11-12',
									'modified' => '2012-11-12'),
							'Tetel' =>
								array('sorszam' => 0, 'szoveg' => 'Adomány', 'osszeg' => 50000.00,
										't' => 4, 'k' => 8, 'spec' => '0'),
								array('sorszam' => 0, 'szoveg' => 'ez is Adomány', 'osszeg' => 33.00,
										't' => 4, 'k' => 8, 'spec' => '0'));
		$actual = is_array($this->Bizonylat->save($data)) ? true : false;
		$expected = true;
		$this->assertEquals($expected, $actual);

		//nincs megjegyzés, sorszam, határidő, created és modified
		$this->Bizonylat->create();
		$data = array('Bizonylat' =>
								array('naplo_id' => 1, 'osztaly_id' => 2, 'user_id' => 1,
									'megjegyzes' => '',
									'datum' => '2012-11-12',  
									'spec' => '', 'zarolt' => 0,),
							'Tetel' =>
								array('sorszam' => 0, 'szoveg' => 'Adomány', 'osszeg' => 50000.00,
										't' => 4, 'k' => 8, 'spec' => '0'),
								array('sorszam' => 0, 'szoveg' => 'ez is Adomány', 'osszeg' => 33.00,
										't' => 4, 'k' => 8, 'spec' => '0'));
		$actual = is_array($this->Bizonylat->save($data)) ? true : false;
		$expected = true;
		$this->assertEquals($expected, $actual);
	}

	public function testGetLastLezart(){
		$actual = $this->Bizonylat->getLastLezart(array('ev' => 2012, 'cegId' => 2));
		$expected = '2012-10-31';
		$this->assertEquals($expected, $actual);

		//nincs még semmi lezárva
		$actual = $this->Bizonylat->getLastLezart(array('ev' => 2012, 'cegId' => 5));
		$expected = array();
		$this->assertEquals($expected, $actual);
	}

	public function testRogzit(){
		$data = array(
					'Bizonylat' => array(
						'_method' => 'POST',
						'datum' => '2012-11-28',
						'megjegyzes' => 'Tárgyi adományok',
						'naplo_id' => '6',
						'osztaly_id' => 12,
						'sorszam' => 22,
						'user_id' => 1),
					'Tetel' => array(
						array(
							'k' => '511',
							't' => '969',
							'osszeg' => 600,
							'szoveg' => 'Dubai bhakták mazsola 40 dkg'
						),
						array(
							'k' => '511',
							't' => '969',
							'osszeg' => 1200,
							'szoveg' => 'Német farmról pisztácia 35 dkg')));
		$actual = $this->Bizonylat->rogzit($data, array('ev' => 2012, 'cegId' => 2));
		$expected = true;
		$this->assertEquals($expected, $actual);
	}
	
	public function testGetLastFromNaplo(){
		$actual = $this->Bizonylat->getLastFromNaplo(1);
		$expected = array('sorszam' => 5, 'datum' => '2012-11-18');
		$this->assertEquals($expected['sorszam'], $actual['sorszam']);
		$this->assertEquals($expected['datum'], $actual['datum']);

		$actual = $this->Bizonylat->getLastFromNaplo(1,3);
		$expected = array('sorszam' => 2, 'datum' => '2012-11-12');
		$this->assertEquals($expected['sorszam'], $actual['sorszam']);
		$this->assertEquals($expected['datum'], $actual['datum']);
	}	
}
